/**
 * Project Untitled
 */


#ifndef _HANDLE_H
#define _HANDLE_H
#include <memory>
#include "Packet.h"
#include "ParaBased.h"
#include "ThreadSafeQueue.h"
// 解析包体中的枚举，映射到具体指定方法
class Handle {
protected:
    ThreadSafeQueue<ParaStruct> queue;
public: 
    virtual void process(PacketBody& data) = 0;
};

class SystemHandle : public Handle {
public:
    void process(PacketBody& data)override{

        // TODO 设计出现问题，notice_type冗余
        queue.push(data); // TOCHECK 是否发生移动
    };
};

class GameHandle : public Handle {
public:

    void process(PacketBody& data)override{

        // TODO 设计出现问题，notice_type冗余
        queue.push(data); // TOCHECK 是否发生移动
    };
};
#endif //_HANDLE_H